Improved cross-compilation support.
Signed-off-by: Keir Fraser <keir@xensource.com>
3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore
3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok
4177dbbfqsi01p2zgZa0geUOgScONw COPYING
+423fdd91sxkCMaKFcDsEdhsZer54vA Config.mk
3eb788d6Kleck_Cut0ouGneviGzliQ Makefile
3f5ef5a24IaQasQE2tyMxrfxskMmvw README
41880852AtdVfSsfKGtrLdajX1vEXQ buildconfigs/Rules.mk
--- /dev/null
+# -*- mode: Makefile; -*-
+# Currently supported architectures: x86_32, x86_64
+XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
+XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
+
+#
+# Tool configuration Makefile fragment
+#
+HOSTCC = gcc
+HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
+
+AS = $(CROSS_COMPILE)as
+LD = $(CROSS_COMPILE)ld
+CC = $(CROSS_COMPILE)gcc
+CPP = $(CROSS_COMPILE)gcc -E
+AR = $(CROSS_COMPILE)ar
+NM = $(CROSS_COMPILE)nm
+STRIP = $(CROSS_COMPILE)strip
+OBJCOPY = $(CROSS_COMPILE)objcopy
+OBJDUMP = $(CROSS_COMPILE)objdump
+
+
+ifneq ($(EXTRA_PREFIX),)
+EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
+EXTRA_LIB += $(EXTRA_PREFIX)/lib
+endif
+
+LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
+CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
+
+CFLAGS += -g
+
+
export XEN_TARGET_ARCH SUBARCH
endif
+include Config.mk
include buildconfigs/Rules.mk
.PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper
# -*- mode: Makefile; -*-
+include $(XEN_ROOT)/Config.mk
+
XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
XEN_LIBXC = $(XEN_ROOT)/tools/libxc
XEN_LIBXUTIL = $(XEN_ROOT)/tools/libxutil
-XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
-
ifeq ($(XEN_TARGET_ARCH),x86_32)
CFLAGS += -m32 -march=i686
LDFLAGS += -m elf_i386
ln -sf $< $@
libxc.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
- $(CC) $(CFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
-include $(DEPS)
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
-
LIB_SRCS :=
LIB_SRCS += allocate.c
LIB_SRCS += enum.c
XEN_ROOT=../..
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
CFLAGS += -Wall -Werror -O3
INCLUDES += -I $(XEN_XC)
XEN_ROOT=../..
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
CFLAGS += -Wall -Werror -O3
CFLAGS += -I $(XEN_XC)
domu_debug ?= n
crash_debug ?= n
-# Currently supported architectures: x86_32, x86_64
-XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
+include $(BASEDIR)/../Config.mk
# Set ARCH/SUBARCH appropriately.
override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH)
ALL_OBJS += $(BASEDIR)/drivers/pci/driver.o
ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
-HOSTCC = gcc
-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-test-gcc-flag = $(shell gcc -v --help 2>&1 | grep -q " $(1) " && echo $(1))
+test-gcc-flag = $(shell $(CC) -v --help 2>&1 | grep -q " $(1) " && echo $(1))
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
########################################
# x86-specific definitions
-CC := gcc
-LD := ld
-
-CFLAGS := -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
+CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
CFLAGS += -iwithprefix include -Wall -Werror -Wno-format -pipe
CFLAGS += -I$(BASEDIR)/include -Wno-pointer-arith -Wredundant-decls
ifeq ($(TARGET_SUBARCH),x86_32)
CFLAGS += -m32 -march=i686
-LDFLAGS := -m elf_i386
+LDFLAGS += -m elf_i386
endif
ifeq ($(TARGET_SUBARCH),x86_64)
CFLAGS += -m64 -mno-red-zone -fpic -fno-reorder-blocks
CFLAGS += -fno-asynchronous-unwind-tables
-LDFLAGS := -m elf_x86_64
+LDFLAGS += -m elf_x86_64
endif
# Test for at least GCC v3.2.x.
-CC := gcc
+include ../../Config.mk
figlet: figlet.c
- $(CC) -o $@ $<
+ $(HOSTCC) -o $@ $<
clean:
rm -f *.o figlet